package com.cuixichang.minimalism.acl;

import com.cuixichang.minimalism.core.security.userdetails.CredentialDetail;
import com.cuixichang.minimalism.transfer.dto.IPermissionDTO;
import com.cuixichang.minimalism.transfer.dto.IRoleDTO;
import com.cuixichang.minimalism.transfer.po.IPermission;
import com.cuixichang.minimalism.transfer.po.IRole;

import java.util.List;
import java.util.Map;

public interface RelevanceDesign {

    List<Long> beAuthLoginIds(Long loginId);

    Map<Long,String> associatedAccountName(List<Long> loginIds);

    IRoleDTO checkRole(Long roleId, List<Long> allowCreateLoginIds, CredentialDetail credentialDetail);

    IPermissionDTO checkPermission(Long permissionId, List<Long> allowCreateLoginIds, CredentialDetail credentialDetail);

    boolean rolePermissionBindingStatus(Long roleId, Long permissionId, boolean toBinding, CredentialDetail credentialDetail);

    boolean roleMenuBindingStatus(Long roleId, Long menuId, boolean bindingStatus, CredentialDetail credentialDetail);

    boolean roleLoginBindingStatus(Long roleId, Long loginId, boolean bindingStatus, CredentialDetail credentialDetail);

    boolean routerBindingStatus(Long routerId,Long relationId,boolean isRole,boolean bindingStatus,CredentialDetail credentialDetail);
}
